package com.heima.common.ocr;

import lombok.extern.slf4j.Slf4j;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import org.springframework.stereotype.Component;

import java.io.File;

/**
 * @author 张一恒
 * @version 1.0
 * @description: 利用ocr获取图片文本内容
 * @date 2023/1/15 18:58
 */
@Component
@Slf4j
public class OcrGteImageContent {

    public String ocrGteImageContent(String datapath, File file) {
        try {
            //创建Tesseract对象
            ITesseract tesseract = new Tesseract();
            //设置字体库路径
            tesseract.setDatapath(datapath);
            //中文识别
            tesseract.setLanguage("chi_sim");
            //执行ocr识别
            String result = tesseract.doOCR(file);
            //替换回车和tal键  使结果为一行
            result = result.replaceAll("\\r|\\n", "-").replaceAll(" ", "");
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            log.error("利用ocr获取图片文本内容出错：{}",e.getMessage());
            return null;
        }
    }
}
